import java.util.HashSet;
import java.util.Set;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 86183
 * Date: 2023-05-04
 * Time: 9:12
 */
public class Task02 {
//    public int lengthOfLongestSubstring(String s){
//        if(s.length() == 0){
//            return 0;
//        }
//        int left = 0;
//        int right = 0;
//        int max = 1;
//        for (int i = 1; i < s.length(); i++) {
//            for (int j = left; j <= right; j++) {
//                  if(s.charAt(j) == s.charAt(i)){
//                      left = j + 1;
//                      break;
//                  }
//            }
//            right++;
//            max = Math.max(max,right - left +1);
//
//        }
//        return max;
//    }
    public int lengthOfLongestSubstring(String s){
        int max = 0;
        int i = 0;
        int j = 0;
        int n = s.length();
        Set<Character> set = new HashSet<>();
        while (i < n && j < n){
            if(!set.contains(s.charAt(j))){
                set.add(s.charAt(j++));
                max = Math.max(max,j-i);
            }else {
                set.remove(s.charAt(i++));
            }
        }
        return max;
    }
}
